# coding:utf-8
import math
import xlrd
import copy
from datetime import datetime
from xlrd import xldate_as_tuple
from base.base_config import *
from common import utils


def leaguerlevel_data_manage(excelfile_Name='基础数据.xls', sheetName='会员级别'):

    excelfile_path = config_manage.EXCEL_PATH + excelfile_Name
    book = xlrd.open_workbook(excelfile_path)
    table = book.sheet_by_name(sheetName)
    max_colNum = table.ncols
    """
    1. 获取excel中列的数据,处理列数据对应到接口data对应的key字段,
    2. 一列一个data,多列数据存放在list中
    3. 根据list的元素个数=用例的个数,循环调用接口
    """
    DataCaseList = []

    data = {
        "LevelName": "huiyuanka-ic",  # 会员级别名称
        "IsMayUnjoin": "TRUE",
        "UnJoinRate": "0.5",  # 注销系数
        "Summary": "",
        "RejoinMoney": "0",
        "IsAllowEditRejoinPrice": "TRUE",
        "ChangeMoney": "0",
        "IsAllowEditChangePrice": "TRUE",
        "SupplementCardMoney": "0",
        "IsAllowEditSupplementPrice": "TRUE",
        "HeapcentlExpireTime": "1",
        "VerifyTimeUnit": "1",
        "HeapcentlExpireUnit": "4",
        "ID": "",
        "CardType": "0",  # 卡类型   0:会员卡  1:临时卡  2:公共卡
        "JoinCardType": "0",  # 入会介质   0:IC会员  1:手机号  10:RFID   20:二维码腕带
        "RejoinGoodClass": "",
        "RejoinGoodsGroup": "",
        "SupplementGoodClass": "",
        "SupplementGoodsGroup": "",
        "ChangeGoodClass": "",
        "ChangeGoodsGroup": "",
        "SecCardGoodClass": "",
        "SecCardGoodsGroup": "",
        "SecChangeGoodClass": "",
        "SecChangeGoodsGroup": "",
        "SecSupplementGoodClass": "",
        "SecSupplementGoodsGroup": "",
        "SecCardPrice": "0",
        "IsAllowEditSecCardPrice": "TRUE",
        "SecChangeCardSujestPrice": "0",
        "IsAllowEditSecChangePrice": "TRUE",
        "SecSupplementCardSujestPrice": "0",
        "IsAllowEditSecSupplementPrice": "TRUE",
    }

    interface_parameter = {}
    for i in range(max_colNum):
        if i == 0:  # 读取首列的参数字段,存放到字典
            col_list = table.col_values(i)
            for field_index, field_value in enumerate(col_list):
                interface_parameter[field_index] = field_value
        elif i == 1:  # 过滤掉标题数据
            pass
        else:
            colValues_list = table.col_values(i)
            # 处理excel中的float数据
            for index, colValues in enumerate(colValues_list):
                if isinstance(colValues, float):
                    point_index = list(str(colValues)).index('.')  # 1.float数据转str 2.再转list数据 3.获取小数点的索引位置
                    float_num = len(str(colValues)[point_index+1:])  # 计算小数点后面的小数位数
                    for num in range(float_num):  # 循环检查小数位的值是否为0
                        num += 1
                        if str(colValues)[point_index+num] != '0':  # 存在非0的小数值,则跳出(一般为售卖价格的值)
                            break
                        else:  # 为0的小数,循环检查是否都为0,全都为0的情况下转为int类型(接口部分参数需要传int参数)
                            if num == float_num:
                                colValues = math.floor(colValues)
                    colValues_list[index] = colValues

            # 更新excel列的值到data
            for case_index, case_value in enumerate(colValues_list):
                if interface_parameter.get(case_index) == 'LevelName':
                    data[interface_parameter.get(case_index)] = utils.regular_many_kind_of_name(case_value, "ZB", "会员级别")  # 会员级别名称
                else:
                    data[interface_parameter.get(case_index)] = case_value

            DataCaseList.append(copy.deepcopy(data))  # 将data加到list中
            # print(DataCaseList)
    return DataCaseList


def gamecoin_data_manage(excelfile_Name='商品用例.xls', sheetName='游戏币'):

    excelfile_path = config_manage.EXCEL_PATH + excelfile_Name
    book = xlrd.open_workbook(excelfile_path)
    table = book.sheet_by_name(sheetName)
    max_colNum = table.ncols
    """
    1. 获取excel中列的数据,处理列数据对应到接口data对应的key字段,
    2. 一列一个data,多列数据存放在list中
    3. 根据list的元素个数=用例的个数,循环调用接口
    """
    DataCaseList = []

    data = {
        "ntelligentPriority": "",
        "ID": "",
        "CoinType": "2",  # 游戏币类型  1:实物币  2:代币  3:自动币
        "IsEditBaseInfo": "",  # 是否为编辑  true：编辑    "空"：新增
        "goodsNo": "65000563130000000",  # 商品编号
        "SetMealName": "电子币1",  # 商品名称
        "CoinNumber": "100",  # 游戏币数量
        "GoldCoinNumber": "100",  # 金币数量
        "StartTimeTerm": "",  # 代币有效起始时间
        "EndTimeTerm": "",  # 代币有效结束时间
        "GoldStartTimeTerm": "",  # 金币有效起始时间
        "GoldEndTimeTerm": "",  # 金币有效结束时间
        "TermType": "0",  # 代币是否有期限  0:永久有效   1:指定生效日期  2:指定过期日期  3:固定过期期限
        "EffectivePeriod": "",  # 代币售卖后多少天过期
        "EffectiveUnit": "",  # 代币售卖后多少XX过期单位  0:永久有效  1:月  2:日
        "GoldTermType": "",  # 金币是否有期限  0:永久有效   1:指定生效日期  2:指定过期日期  3:固定过期期限
        "GoldEffectivePeriod": "",  # 金币售卖后多少天过期
        "GoldEffectiveUnit": "",  # 金币售卖后多少XX过期单位  0:永久有效  1:月  2:日
        "CancelHours": "24",  # 退餐时间
        "IsNeedAuth": "FALSE",  # 售卖需要授权
        "sellprice": "100",  # 售卖价格
        "IsEnable": "TRUE",  # 是否上架
        "StartTime": "43869",  # 上架时间
        "EndTime": "62132",  # 下架时间
        "searchText": "",  # 展示分组
        "ShowSoft": "0",
        "BackColor": "#FFFFFF",
        "ForeColor": "#000000",
        "IsPrint": "TRUE",  # 售卖打印小票
        "IsAllTerminalCanSale": "TRUE",  # 可售卖终端
        "price": "100",  # 售卖价格
        "SaleTerminal": "",
    }

    interface_parameter = {}
    for i in range(max_colNum):
        if i == 0:  # 读取首列的参数字段,存放到字典
            col_list = table.col_values(i)
            for field_index, field_value in enumerate(col_list):
                interface_parameter[field_index] = field_value
        elif i == 1:  # 过滤掉标题数据
            pass
        else:
            colValues_list = table.col_values(i)
            # 处理excel中的float数据
            for index, colValues in enumerate(colValues_list):
                if isinstance(colValues, float):
                    point_index = list(str(colValues)).index('.')  # 1.float数据转str 2.再转list数据 3.获取小数点的索引位置
                    float_num = len(str(colValues)[point_index + 1:])  # 计算小数点后面的小数位数
                    for num in range(float_num):  # 循环检查小数位的值是否为0
                        num += 1
                        if str(colValues)[point_index + num] != '0':  # 存在非0的小数值,则跳出(一般为售卖价格的值)
                            break
                        else:  # 为0的小数,循环检查是否都为0,全都为0的情况下转为int类型(接口部分参数需要传int参数)
                            if num == float_num:
                                colValues = math.floor(colValues)
                    colValues_list[index] = colValues

            # 更新excel列的值到data
            for case_index, case_value in enumerate(colValues_list):
                if interface_parameter[case_index] == 'SetMealName':
                    data[interface_parameter[case_index]] = utils.regular_good_name(case_value)  # 商品名称
                elif interface_parameter[case_index] == 'StartTimeTerm':
                    # 将开始时间和结束时间戳,重新转为日期格式
                    start_date = datetime(*xldate_as_tuple(case_value, 0))  # 代币有效期开始时间
                    starttime = start_date.strftime('%Y-%m-%d')
                    data[interface_parameter[case_index]] = starttime
                elif interface_parameter[case_index] == 'EndTimeTerm':
                    end_date = datetime(*xldate_as_tuple(case_value, 0))  # 代币有效期结束时间
                    endtime = end_date.strftime('%Y-%m-%d')
                    data[interface_parameter[case_index]] = endtime
                elif interface_parameter[case_index] == 'GoldStartTimeTerm':
                    # 将开始时间和结束时间戳,重新转为日期格式
                    start_date = datetime(*xldate_as_tuple(case_value, 0))  # 金币有效期开始时间
                    starttime = start_date.strftime('%Y-%m-%d')
                    data[interface_parameter[case_index]] = starttime
                elif interface_parameter[case_index] == 'GoldEndTimeTerm':
                    end_date = datetime(*xldate_as_tuple(case_value, 0))  # 金币有效期结束时间
                    endtime = end_date.strftime('%Y-%m-%d')
                    data[interface_parameter[case_index]] = endtime
                elif interface_parameter[case_index] == 'StartTime':
                    # 将开始时间和结束时间戳,重新转为日期格式
                    start_date = datetime(*xldate_as_tuple(case_value, 0))  # 上架时间
                    starttime = start_date.strftime('%Y-%m-%d')
                    data[interface_parameter[case_index]] = starttime
                elif interface_parameter[case_index] == 'EndTime':
                    end_date = datetime(*xldate_as_tuple(case_value, 0))  # 下架时间
                    endtime = end_date.strftime('%Y-%m-%d')
                    data[interface_parameter[case_index]] = endtime
                else:
                    data[interface_parameter[case_index]] = case_value

            from initialization.Initialization_chain import many_kinds_of_goodno
            data["goodsNo"] = many_kinds_of_goodno(101)  # 获取游戏币的商品编号

            DataCaseList.append(copy.deepcopy(data))  # 将data加到list中
            # print(DataCaseList)
    return DataCaseList


def leaugerjoin_data_manage(excelfile_Name='商品用例.xls', sheetName='会员入会'):

    excelfile_path = config_manage.EXCEL_PATH + excelfile_Name
    book = xlrd.open_workbook(excelfile_path)
    table = book.sheet_by_name(sheetName)
    max_colNum = table.ncols
    """
    1. 获取excel中列的数据,处理列数据对应到接口data对应的key字段,
    2. 一列一个data,多列数据存放在list中
    3. 根据list的元素个数=用例的个数,循环调用接口
    """
    DataCaseList = []  # excel数据列表,一列一个元素
    good_class = str(DB_MD.ExecQuery("select TOP 1 ID from mall_goodclass where IsDelete=0 and IsEnable=1 order by CreateTime desc")[0][0])
    data = {
        "ID": "",
        "GoodNO": "1000563130000140",  # 商品编号
        "SetMealName": "ic01",  # 入会套餐名称
        "LeaguerExpireDays": "365",  # 初始有效期
        "IsNeedAuth": "FALSE",  # 是否需要授权售卖
        "Price": "200",  # 套餐价格
        "CashNumber": "100",  # 押金
        "IsEnable": "TRUE",  # 是否上架  true:上架  false:下架
        "StartTime": "43879",  # 开始时间
        "EndTime": "62142",  # 结束时间
        "searchText": "入会套餐",  # 分组名称
        "ShowSoft": "",
        "BackColor": "#FFFFFF",
        "ForeColor": "#000000",
        "IsPrint": "TRUE",  # 是否打印小票  true:打印小票  false:不可小票
        "IsAllTerminalCanSale": "TRUE",  # 所有终端可售   true:所有终端可售  false:限制售卖终端
        "GoodClass": good_class,
        "GoodGroup": "",
        "LeagerLevelID": "ca1b955b-2e4a-43bb-a29e-ab5b00007a86",  # 入会级别
        "GoodsInfo": '[]',  # 子商品数据
        # "GoodsInfo": '[{"Good":"6ccba486 - a583 - 452e - bb13 - ab5c0117b5b0","GoodName":"adasds","Price":11,"Amount":1}]',
        "SaleTerms": "",
    }

    interface_parameter = {}  # excel列数据
    for i in range(max_colNum):
        if i == 0:  # 读取首列的参数字段,存放到字典
            col_list = table.col_values(i)
            for field_index, field_value in enumerate(col_list):
                interface_parameter[field_index] = field_value
        elif i == 1:  # 过滤掉标题数据
            pass
        else:
            colValues_list = table.col_values(i)
            # 处理excel中的float数据
            for index, colValues in enumerate(colValues_list):
                if isinstance(colValues, float):
                    point_index = list(str(colValues)).index('.')  # 1.float数据转str 2.再转list数据 3.获取小数点的索引位置
                    float_num = len(str(colValues)[point_index + 1:])  # 计算小数点后面的小数位数
                    for num in range(float_num):  # 循环检查小数位的值是否为0
                        num += 1
                        if str(colValues)[point_index + num] != '0':  # 存在非0的小数值,则跳出(一般为售卖价格的值)
                            break
                        else:  # 为0的小数,循环检查是否都为0,全都为0的情况下转为int类型(接口部分参数需要传int参数)
                            if num == float_num:
                                colValues = math.floor(colValues)
                    colValues_list[index] = colValues

            # 更新excel列的值到data
            leaguerlevel_dict = dict()
            for case_index, case_value in enumerate(colValues_list):
                if interface_parameter[case_index] == 'SetMealName':
                    data[interface_parameter[case_index]] = utils.regular_good_name(case_value)  # 商品名称
                elif interface_parameter[case_index] == 'StartTime':
                    # 将开始时间和结束时间戳,重新转为日期格式
                    start_date = datetime(*xldate_as_tuple(case_value, 0))  # 上架时间
                    starttime = start_date.strftime('%Y-%m-%d')
                    data[interface_parameter[case_index]] = starttime
                elif interface_parameter[case_index] == 'EndTime':
                    end_date = datetime(*xldate_as_tuple(case_value, 0))  # 下架时间
                    endtime = end_date.strftime('%Y-%m-%d')
                    data[interface_parameter[case_index]] = endtime
                elif interface_parameter[case_index] == 'CardType':  # 卡类型
                    leaguerlevel_dict["CardType"] = case_value
                elif interface_parameter[case_index] == 'JoinCardType':
                    leaguerlevel_dict["JoinCardType"] = case_value  # 入会介质
                else:
                    data[interface_parameter[case_index]] = case_value

            from initialization.Initialization_chain import many_kinds_of_goodno
            data["GoodNO"] = many_kinds_of_goodno(1)  # 获取入会套餐的商品编号

            sql = "select TOP 1 ID from Mall_LeaguerLevel where CardType="+str(leaguerlevel_dict["CardType"])+" and JoinCardType="+str(leaguerlevel_dict["JoinCardType"])+" and IsDelete=0 and IsEnable=1"
            leaguerlevel_id = str(DB_MD.ExecQuery(sql)[0][0])
            data["LeagerLevelID"] = leaguerlevel_id

            DataCaseList.append(copy.deepcopy(data))  # 将data加到list中
            # print(DataCaseList)
    return DataCaseList


def charge_data_manage(excelfile_Name='商品用例.xls', sheetName='预存款'):

    excelfile_path = config_manage.EXCEL_PATH + excelfile_Name
    book = xlrd.open_workbook(excelfile_path)
    table = book.sheet_by_name(sheetName)
    max_colNum = table.ncols
    """
    1. 获取excel中列的数据,处理列数据对应到接口data对应的key字段,
    2. 一列一个data,多列数据存放在list中
    3. 根据list的元素个数=用例的个数,循环调用接口
    """
    DataCaseList = []
    good_class = str(DB_MD.ExecQuery("select TOP 1 ID from mall_goodclass where IsDelete=0 and IsEnable=1 order by CreateTime desc")[0][0])
    data = {
        "ID": "",
        "GoodNO": "1000563130000170",  # 商品编号
        "SetMealName": "预存款1",  # 预存款名称
        "PrepaidMoney": "200",  # 预存款金额
        "Price": "200",  # 售卖价格
        "CancelHour": "24",  # 可退餐时间
        "IsNeedAuth": "FALSE",  # 是否需要授权售卖
        "IsEnable": "TRUE",  # 是否上架
        "SalePrice": "0",
        "StartTime": "43880",  # 上架时间
        "EndTime": "62143",  # 下架时间
        "searchText": "预存款",  # 分组名称
        "ShowSoft": "",
        "BackColor": "#FFFFFF",
        "ForeColor": "#000000",
        "IsPrint": "TRUE",  # 是否打印小票
        "IsAllTerminalCanSale": "TRUE",  # 所有终端可售
        "GoodClass": good_class,  # 商品分类
        "GoodGroup": "",
        "SaleTerms": "",
    }
    interface_parameter = {}
    for i in range(max_colNum):
        if i == 0:  # 读取首列的参数字段,存放到字典
            col_list = table.col_values(i)
            for field_index, field_value in enumerate(col_list):
                interface_parameter[field_index] = field_value
        elif i == 1:  # 过滤掉标题数据
            pass
        else:
            colValues_list = table.col_values(i)
            # 处理excel中的float数据
            for index, colValues in enumerate(colValues_list):
                if isinstance(colValues, float):
                    point_index = list(str(colValues)).index('.')  # 1.float数据转str 2.再转list数据 3.获取小数点的索引位置
                    float_num = len(str(colValues)[point_index + 1:])  # 计算小数点后面的小数位数
                    for num in range(float_num):  # 循环检查小数位的值是否为0
                        num += 1
                        if str(colValues)[point_index + num] != '0':  # 存在非0的小数值,则跳出(一般为售卖价格的值)
                            break
                        else:  # 为0的小数,循环检查是否都为0,全都为0的情况下转为int类型(接口部分参数需要传int参数)
                            if num == float_num:
                                colValues = math.floor(colValues)
                    colValues_list[index] = colValues

            # 更新excel列的值到data
            for case_index, case_value in enumerate(colValues_list):
                if interface_parameter[case_index] == 'SetMealName':
                    data[interface_parameter[case_index]] = utils.regular_good_name(case_value)  # 商品名称
                elif interface_parameter[case_index] == 'StartTime':
                    # 将开始时间和结束时间戳,重新转为日期格式
                    start_date = datetime(*xldate_as_tuple(case_value, 0))  # 上架时间
                    starttime = start_date.strftime('%Y-%m-%d')
                    data[interface_parameter[case_index]] = starttime
                elif interface_parameter[case_index] == 'EndTime':
                    end_date = datetime(*xldate_as_tuple(case_value, 0))  # 下架时间
                    endtime = end_date.strftime('%Y-%m-%d')
                    data[interface_parameter[case_index]] = endtime
                else:
                    data[interface_parameter[case_index]] = case_value

            from initialization.Initialization_chain import many_kinds_of_goodno
            data["GoodNO"] = many_kinds_of_goodno(2)  # 获取预存款的商品编号

            DataCaseList.append(copy.deepcopy(data))  # 将data加到list中
            # print(DataCaseList)
    return DataCaseList


def retailgoods_data_manage(excelfile_Name='商品用例.xls', sheetName='零售商品'):
    excelfile_path = config_manage.EXCEL_PATH + excelfile_Name
    book = xlrd.open_workbook(excelfile_path)
    table = book.sheet_by_name(sheetName)
    max_colNum = table.ncols
    """
    1. 获取excel中列的数据,处理列数据对应到接口data对应的key字段,
    2. 一列一个data,多列数据存放在list中
    3. 根据list的元素个数=用例的个数,循环调用接口
    """
    DataCaseList = []
    good_class = str(DB_MD.ExecQuery("select TOP 1 ID from mall_goodclass where IsDelete=0 and IsEnable=1 order by CreateTime desc")[0][0])
    data = {
        "ID": "",
        "GoodNO": "563130000202",  # 商品编号
        "GoodName": "通用",  # 商品名称
        "Specifications": "",
        "IsNeedAuth": "FALSE",  # 是否需要授权售卖  true:需要授权   false:不需要授权
        "IsReal": "TRUE",  # 是否实物商品  true:实物商品  false:虚拟商品
        "Cost": "0",
        "SuggestSellPrice": "0",
        "IsWarning": "FALSE",  # 是否预警  true:预警  false:不预警
        "warningAmount": "0",  # 预警数量
        "Notes": "",
        "Price": "100",  # 售卖价格
        "IsEnable": "TRUE",  # 是否上架  true:上架   false:下架
        "StartTime": "43880",  # 上架时间
        "EndTime": "62143",  # 下架时间
        "IsLimiteBuy": "FALSE",  # 是否限制购买
        "LimiteBuyNumbers": "0",  # 限购数量
        "GoodsNotice": "",
        "searchText": "实物",  # 分组名称
        "ShowSoft": "",
        "BackColor": "#ffffff",
        "ForeColor": "#000000",
        "IsPrint": "TRUE",  # 是否打印小票
        "IsAllTerminalCanSale": "TRUE",  # 所有终端可售
        "GClassID": good_class,  # 商品分类
        "GoodsAtt": "0",
        "AllTerms": "",
        "Barcodes": "",  # 条形码
        "GroupName": "",
    }
    interface_parameter = {}
    for i in range(max_colNum):
        if i == 0:  # 读取首列的参数字段,存放到字典
            col_list = table.col_values(i)
            for field_index, field_value in enumerate(col_list):
                interface_parameter[field_index] = field_value
        elif i == 1:  # 过滤掉标题数据
            pass
        else:
            colValues_list = table.col_values(i)
            # 处理excel中的float数据
            for index, colValues in enumerate(colValues_list):
                if isinstance(colValues, float):
                    point_index = list(str(colValues)).index('.')  # 1.float数据转str 2.再转list数据 3.获取小数点的索引位置
                    float_num = len(str(colValues)[point_index + 1:])  # 计算小数点后面的小数位数
                    for num in range(float_num):  # 循环检查小数位的值是否为0
                        num += 1
                        if str(colValues)[point_index + num] != '0':  # 存在非0的小数值,则跳出(一般为售卖价格的值)
                            break
                        else:  # 为0的小数,循环检查是否都为0,全都为0的情况下转为int类型(接口部分参数需要传int参数)
                            if num == float_num:
                                colValues = math.floor(colValues)
                    colValues_list[index] = colValues

            # 更新excel列的值到data
            for case_index, case_value in enumerate(colValues_list):
                if interface_parameter[case_index] == 'SetMealName':
                    data[interface_parameter[case_index]] = utils.regular_good_name(case_value)  # 商品名称
                elif interface_parameter[case_index] == 'StartTime':
                    # 将开始时间和结束时间戳,重新转为日期格式
                    start_date = datetime(*xldate_as_tuple(case_value, 0))  # 上架时间
                    starttime = start_date.strftime('%Y-%m-%d')
                    data[interface_parameter[case_index]] = starttime
                elif interface_parameter[case_index] == 'EndTime':
                    end_date = datetime(*xldate_as_tuple(case_value, 0))  # 下架时间
                    endtime = end_date.strftime('%Y-%m-%d')
                    data[interface_parameter[case_index]] = endtime
                else:
                    data[interface_parameter[case_index]] = case_value

            from initialization.Initialization_chain import many_kinds_of_goodno
            data["GoodNO"] = many_kinds_of_goodno(0)  # 获取零售商品的商品编号

            DataCaseList.append(copy.deepcopy(data))  # 将data加到list中
            # print(DataCaseList)
    return DataCaseList


def combination_goods_data_manage(excelfile_Name='商品用例.xls', sheetName='组合商品'):
    excelfile_path = config_manage.EXCEL_PATH + excelfile_Name
    book = xlrd.open_workbook(excelfile_path)
    table = book.sheet_by_name(sheetName)
    max_colNum = table.ncols
    """
    1. 获取excel中列的数据,处理列数据对应到接口data对应的key字段,
    2. 一列一个data,多列数据存放在list中
    3. 根据list的元素个数=用例的个数,循环调用接口
    """
    DataCaseList = []
    good_class = str(
        DB_MD.ExecQuery("select TOP 1 ID from mall_goodclass where IsDelete=0 and IsEnable=1 order by CreateTime desc")[
            0][0])
    data = {
        "ID": "",
        "GoodNO": "1000563130000170",  # 商品编号
        "SetMealName": "预存款1",  # 预存款名称
        "PrepaidMoney": "200",  # 预存款金额
        "Price": "200",  # 售卖价格
        "CancelHour": "24",  # 可退餐时间
        "IsNeedAuth": "FALSE",  # 是否需要授权售卖
        "IsEnable": "TRUE",  # 是否上架
        "SalePrice": "0",
        "StartTime": "43880",  # 上架时间
        "EndTime": "62143",  # 下架时间
        "searchText": "预存款",  # 分组名称
        "ShowSoft": "",
        "BackColor": "#FFFFFF",
        "ForeColor": "#000000",
        "IsPrint": "TRUE",  # 是否打印小票
        "IsAllTerminalCanSale": "TRUE",  # 所有终端可售
        "GoodClass": good_class,  # 商品分类
        "GoodGroup": "",
        "SaleTerms": "",
    }
    interface_parameter = {}
    for i in range(max_colNum):
        if i == 0:  # 读取首列的参数字段,存放到字典
            col_list = table.col_values(i)
            for field_index, field_value in enumerate(col_list):
                interface_parameter[field_index] = field_value
        elif i == 1:  # 过滤掉标题数据
            pass
        else:
            colValues_list = table.col_values(i)
            # 处理excel中的float数据
            for index, colValues in enumerate(colValues_list):
                if isinstance(colValues, float):
                    point_index = list(str(colValues)).index('.')  # 1.float数据转str 2.再转list数据 3.获取小数点的索引位置
                    float_num = len(str(colValues)[point_index + 1:])  # 计算小数点后面的小数位数
                    for num in range(float_num):  # 循环检查小数位的值是否为0
                        num += 1
                        if str(colValues)[point_index + num] != '0':  # 存在非0的小数值,则跳出(一般为售卖价格的值)
                            break
                        else:  # 为0的小数,循环检查是否都为0,全都为0的情况下转为int类型(接口部分参数需要传int参数)
                            if num == float_num:
                                colValues = math.floor(colValues)
                    colValues_list[index] = colValues

            # 更新excel列的值到data
            for case_index, case_value in enumerate(colValues_list):
                if interface_parameter[case_index] == 'SetMealName':
                    data[interface_parameter[case_index]] = utils.regular_good_name(case_value)  # 商品名称
                elif interface_parameter[case_index] == 'StartTime':
                    # 将开始时间和结束时间戳,重新转为日期格式
                    start_date = datetime(*xldate_as_tuple(case_value, 0))  # 上架时间
                    starttime = start_date.strftime('%Y-%m-%d')
                    data[interface_parameter[case_index]] = starttime
                elif interface_parameter[case_index] == 'EndTime':
                    end_date = datetime(*xldate_as_tuple(case_value, 0))  # 下架时间
                    endtime = end_date.strftime('%Y-%m-%d')
                    data[interface_parameter[case_index]] = endtime
                else:
                    data[interface_parameter[case_index]] = case_value

            from initialization.Initialization_chain import many_kinds_of_goodno
            data["GoodNO"] = many_kinds_of_goodno(2)  # 获取预存款的商品编号

            DataCaseList.append(copy.deepcopy(data))  # 将data加到list中
            # print(DataCaseList)
    return DataCaseList


def suit():
    leaguerlevel_data_manage()  # 会员级别
    gamecoin_data_manage()  # 游戏币
    charge_data_manage()  # 预存款
    retailgoods_data_manage()  # 零售商品
    combination_goods_data_manage()  # 组合商品
    leaugerjoin_data_manage()  # 会员入会
    pass


if __name__ == '__main__':
    suit()
    test = suit.__dict__
